/*
interface（接口）和 type（类型别名）的对比：

相同点：都可以给对象指定类型。
不同点：
接口，只能为对象指定类型。
类型别名，不仅可以为对象指定类型，实际上可以为任意类型指定别名。
* */
interface IPerson {
    name: string
    age: number
    sayHi(): void
}

let person: IPerson = {
    name: 'liu',
    age: 18,
    sayHi() {
        console.log('person hello')
    }
}

let person1: IPerson = {
    name: 'jack',
    age: 17,
    sayHi() {
        console.log('person1 hello')
    }
}

console.log(person, person1)
person.sayHi()
person1.sayHi()

//继承
interface Point2D {
    x: number
    y: number
}
interface Point3D extends Point2D{
    z: number
}
let point3d_1: Point3D = {
    x:1,
    y:2,
    z:3
}
console.log(point3d_1)
